package com.jsmy.softapp.net;

import com.jsmy.softapp.bean.AppTJListBean;
import com.jsmy.softapp.bean.AppZLGroupBean;
import com.jsmy.softapp.bean.AppZLListBean;
import com.jsmy.softapp.bean.CustomerBean;
import com.jsmy.softapp.bean.GTKJListBean;
import com.jsmy.softapp.bean.LoginBean;
import com.jsmy.softapp.bean.PlanInfoBean;
import com.jsmy.softapp.bean.RankListBean;
import com.jsmy.softapp.bean.TXLBean;
import com.jsmy.softapp.bean.VersionBean;
import com.jsmy.softapp.bean.YWgtjhBean;

import java.util.Map;

import io.reactivex.Observable;
import okhttp3.RequestBody;
import okhttp3.ResponseBody;
import retrofit2.http.Body;
import retrofit2.http.GET;
import retrofit2.http.POST;
import retrofit2.http.QueryMap;
import retrofit2.http.Streaming;
import retrofit2.http.Url;

/**
 * Created with Android Studio.
 * User: wei_cd.
 * Date: 2018/4/16.
 * Time: 10:36.
 * To change for file | settings | file and code templates.
 */

public interface GetApi {
    /**
     * call方式
     * //Get请求
     *
     * @GET Call<String> getNetWork(
     * @Url String url,
     * @QueryMap Map<String, String> options);
     * <p>
     * <p>
     * //post请求
     * @FormUrlEncoded
     * @POST Call<String> postNetWork(
     * @Url String url,
     * @FieldMap Map<String, String> fields);
     * <p>
     * <p>
     * //文件下载
     * @Streaming
     * @GET Call<ResponseBody> downloadFiles(
     * @Url String fileUrl);
     * <p>
     * <p>
     * //文件上传
     * @POST() Call<String> upLoad(
     * @Url() String url,
     * @Body RequestBody Body);
     */

    /**
     * rxjava方式
     */

    //文件下载
    @Streaming
    @GET
    Observable<ResponseBody> downLoad(
            @Url String fileUrl);

    //文件上传
    @POST()
    Observable<ResponseBody> upLoad(
            @Url() String url,
            @Body RequestBody Body);
    //注册
    @GET
    Observable<String> register(
            @Url String url,
            @QueryMap Map<String, String> options);
    //登录
    @GET
    Observable<LoginBean> login(
            @Url String url,
            @QueryMap Map<String, String> options);
    //基本资料
    @GET
    Observable<LoginBean> getbasicinfo(
            @Url String url,
            @QueryMap Map<String, String> options);
    //统计信息
    @GET
    Observable<AppTJListBean> getapptjlist(
            @Url String url,
            @QueryMap Map<String, String> options);
    //常用资料
    @GET
    Observable<AppZLListBean> getsyappzllist(
            @Url String url,
            @QueryMap Map<String, String> options);
    //更多资料
    @GET
    Observable<AppZLListBean> getappsyzlgdlist(
            @Url String url,
            @QueryMap Map<String, String> options);
    //通讯录
    @GET
    Observable<TXLBean> gettxllist(
            @Url String url,
            @QueryMap Map<String, String> options);

    //版本更新
    @GET
    Observable<VersionBean> getversioninfo(
            @Url String url,
            @QueryMap Map<String, String> options);

    //组别选择
    @GET
    Observable<AppZLGroupBean> getappzlgrouplist(
            @Url String url,
            @QueryMap Map<String, String> options);

    //业务--沟通计划
    @GET
    Observable<YWgtjhBean> getywgtjhlist(
            @Url String url,
            @QueryMap Map<String, String> options);

    //业务--沟通日志
    @GET
    Observable<YWgtjhBean> getywgtrzlist(
            @Url String url,
            @QueryMap Map<String, String> options);

    //客户--基本资料
    @GET
    Observable<CustomerBean> getkhzlinfo(
            @Url String url,
            @QueryMap Map<String, String> options);

    //客户--沟通计划列表
    @GET
    Observable<YWgtjhBean> getzlgtplanlist(
            @Url String url,
            @QueryMap Map<String, String> options);

    //客户--沟通日志
    @GET
    Observable<YWgtjhBean> getkhzlgtrzlist(
            @Url String url,
            @QueryMap Map<String, String> options);

    //首页--排行榜
    @GET
    Observable<RankListBean> getRankList(
            @Url String url,
            @QueryMap Map<String, String> options);

    //资料--任务完成与取消
    @GET
    Observable<RankListBean> saverwflaginfo(
            @Url String url,
            @QueryMap Map<String, String> options);

    //客户--沟通日志快捷方式
    @GET
    Observable<GTKJListBean> getgtkjlist(
            @Url String url,
            @QueryMap Map<String, String> options);

    //客户--新增沟通日志
    @GET
    Observable<GTKJListBean> savenewgtrzinfo(
            @Url String url,
            @QueryMap Map<String, String> options);

    //客户--删除沟通日志
    @GET
    Observable<GTKJListBean> savedelgtrzinfo(
            @Url String url,
            @QueryMap Map<String, String> options);

    //客户--保存沟通计划
    @GET
    Observable<GTKJListBean> savegtpalninf(
            @Url String url,
            @QueryMap Map<String, String> options);

    //客户--沟通详情
    @GET
    Observable<PlanInfoBean> getgtjhinfo(
            @Url String url,
            @QueryMap Map<String, String> options);

    //资料--分享
    @GET
    Observable<PlanInfoBean> savefxinfo(
            @Url String url,
            @QueryMap Map<String, String> options);

    //签到
    @GET
    Observable<PlanInfoBean> saveqdinfo(
            @Url String url,
            @QueryMap Map<String, String> options);

}
